<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .title {
            line-height: 40px;
            font-weight: bold;
            text-align: center;
        }

        .list .item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin: 20px;
        }

        .list .item img {
            width: 60px;
        }
    </style>
</head>

<body>
    <!-- ! 由于vue实例对象挂载到#app表示的dom节点上，所以vue实例对象定义的数据和方法就可以在这个dom节点内部使用（在dom节点外部不可以使用） -->
    <!-- ! 列表渲染，使用vuejs提供的命令 v-for 也可以配合key属性一切使用 -->
    <!-- ! 列表渲染，v-for="(item,index) in tasklist" -->
    <!-- ! {{表达式 或 变量 }} 也可以叫做差值表达式（双大括号），会计算内部表达式或变量的值，只能用在标签的内容区-->
    <!-- ! 属性值的绑定，当属性值中有变量，需要计算时，属性名称前必须有v-bind，否<div class="fir">
                    <div class="hb">
                        <div class="top">￥5</div>
                        <div class="bfoot">满30可用</div>
                    </div>
                    <p>吃货联盟红包</p>
                </div>则属性值就无法正常解析 -->
    <!-- ! v-bind：属性名="属性值"，属性值可以是变量，也可以是表达式 -->
    <!-- ! 如果属性值中没有变量，也不需要计算，计算固定的字符串则不需要在属性名前加v-bind -->
    <div id="app">
        <div class="title">任务列表</div>
        <div class="list">

            <div class="item" v-for="(item,index) in tasklist" v-bind:key="index">
                <div class="left">
                    <img v-bind:src="item.pic" alt="">
                </div>
                <div class="middle">
                    <div class="name"> {{ item.name }} </div>
                    <div class="desc"> {{ item.desc }} </div>
                </div>
                <div class="right">
                    <button> {{ item.status == 1 ? '去完成' : (item.status == 2 ? '领取' : '已领取') }} </button>
                </div>
            </div>
        </div>
    </div>

<!-- ! 这个js文件对外暴露了一个vue构造函数，我们可以使用vue构造函数实例化vue对象-->
<script src="./vue-2.5.21.js"></script>
<script>
    // 实例化vue对象
    var v = new Vue({
        //这个位置放置vuejs规定的一些选项（这些选项的名字是固定的，另外这些选项是可选的）
        el: '#app',//el变色vue实例挂载的dom节点

        // data:function(){return {}}//使用函数的写法可以在实例化对象时生成一个新的数据
        data: {
            tasklist: [
                { id: 1, pic: './pic.png', name: '咪咕视频送流量', desc: '每月领500MB流量', status: 1 },
                { id: 2, pic: './pic.png', name: '咪咕视频送福利', desc: '每月领800MB流量', status: 2 },
                { id: 3, pic: './pic.png', name: '咪咕视频送套餐折扣券', desc: '每月领1500MB流量', status: 3 },
                { id: 4, pic: './pic.png', name: '咪咕视频送超级秒杀', desc: '每月领5500MB流量', status: 1 },
            ]

        },//data定义响应式数据，data的类型可以是对象也可以是函数

        computed: {},//computed定义计算属性

        watch: {},//watch定义数据监听

        methods: {},//methods定义方法（函数）

        filters: {},//filters定义过滤器

        directives: {},//directives定义自定义指令

        components: {},//components注册局部组件
    })

    // 使用vuejs的声明式编程语法，实现<数据驱动视图更新>


</script>

</body>

</html>